Batch Apex এর মৌলিক ধারণা

Computer Programming - এপেক্স (Apex) Apex Batch Processing (Apex Batch Processing) |
222
222

Batch Apex হলো Salesforce-এর একটি Asynchronous Apex ফ্রেমওয়ার্ক, যা বড় ডেটাসেট বা দীর্ঘ সময় ধরে চলা কার্যক্রম ছোট ছোট অংশে ভাগ করে প্রসেস করার জন্য ব্যবহৃত হয়। Salesforce-এর গভর্নর লিমিট থাকা সত্ত্বেও Batch Apex বড় ডেটাসেটের উপর কার্যক্ষমতা নিশ্চিত করে এবং একাধিক ব্যাচে বিভক্ত করে ডেটা প্রক্রিয়া করে। এটি ব্যবহার করে ডেটাবেসের একটি বড় টেবিলের হাজার হাজার রেকর্ড নিয়মিত আপডেট, প্রসেস, বা ডিলিট করা যায়।


Batch Apex এর প্রধান বৈশিষ্ট্য

  1. বড় ডেটাসেট প্রক্রিয়াকরণ: Batch Apex বড় ডেটাসেট প্রক্রিয়া করতে সক্ষম এবং এটি ডেটা এক্সিকিউশন ২০০টি রেকর্ডের ব্যাচে সম্পন্ন করে।
  2. গভর্নর লিমিট মেনে চলা: Salesforce গভর্নর লিমিটের মধ্যে থেকে কার্যক্ষমতা নিশ্চিত করে এবং প্রতিটি ব্যাচের জন্য গভর্নর লিমিট রিসেট হয়।
  3. Asynchronous Execution: Batch Apex Asynchronous-ভাবে কাজ করে, যা ব্যবহারকারীর অন্য কার্যক্রমে ব্যাঘাত না ঘটিয়ে ব্যাকগ্রাউন্ডে প্রক্রিয়া সম্পন্ন করে।
  4. সামঞ্জস্যপূর্ণ পারফরম্যান্স: Batch Apex-এর মাধ্যমে সময়মাফিক বড় কাজ বা প্রসেসিং সম্পন্ন করা যায়।

Batch Apex ক্লাসের গঠন

Batch Apex ক্লাস তৈরি করতে Database.Batchable ইন্টারফেস ইমপ্লিমেন্ট করতে হয় এবং তিনটি মেথড ব্যবহার করতে হয়:

  1. start: ডেটা প্রসেসিংয়ের জন্য ইনিশিয়াল ডেটাসেট বা কুয়েরি সিলেক্ট করে।
  2. execute: নির্দিষ্ট সংখ্যক রেকর্ডের উপর কার্যক্রম পরিচালনা করে।
  3. finish: ব্যাচ প্রক্রিয়াকরণ শেষে যে কাজ করতে হবে তা সম্পন্ন করে।

Batch Apex ক্লাসের উদাহরণ

নিচে Account অবজেক্টের ডেটা প্রসেস করতে একটি সাধারণ Batch Apex ক্লাসের উদাহরণ দেয়া হলো।

public class AccountBatchExample implements Database.Batchable<SObject> {
    
    // start মেথডে প্রাথমিক SOQL কুয়েরি বা ডেটাসেট সিলেক্ট করা হয়
    public Database.QueryLocator start(Database.BatchableContext BC) {
        return Database.getQueryLocator('SELECT Id, Name FROM Account');
    }
    
    // execute মেথডে প্রতিটি ব্যাচের ২০০টি রেকর্ড প্রক্রিয়া করা হয়
    public void execute(Database.BatchableContext BC, List<SObject> scope) {
        for (SObject s : scope) {
            Account acc = (Account) s;
            acc.Name = acc.Name + ' Updated';
        }
        update scope;
    }
    
    // finish মেথডে ব্যাচ প্রক্রিয়াকরণের পরে চূড়ান্ত কাজ সম্পন্ন করা হয়
    public void finish(Database.BatchableContext BC) {
        System.debug('Batch process completed.');
    }
}

// Batch Apex ক্লাস এক্সিকিউট করা
Database.executeBatch(new AccountBatchExample(), 100);
  • start মেথড: ডেটাসেট বা কুয়েরি সিলেক্ট করে এবং Database.QueryLocator রিটার্ন করে।
  • execute মেথড: প্রতিটি ব্যাচের ২০০টি রেকর্ডের উপর কার্যক্রম চালায়।
  • finish মেথড: ব্যাচ প্রসেস শেষ হলে চূড়ান্ত কাজ বা লগিং সম্পন্ন করে।

Batch Apex চালানো

Batch Apex ক্লাস চালানোর জন্য Database.executeBatch() মেথড ব্যবহার করতে হয়। এখানে, প্রথম প্যারামিটার হিসেবে Batch Apex ক্লাসের ইনস্ট্যান্স এবং দ্বিতীয় প্যারামিটার হিসেবে ব্যাচ সাইজ প্রদান করতে হয়।

Database.executeBatch(new AccountBatchExample(), 100);

এখানে 100 হল ব্যাচ সাইজ, অর্থাৎ প্রতিটি ব্যাচে ১০০টি রেকর্ড প্রক্রিয়াকৃত হবে।


Batch Apex এর ব্যবহার ক্ষেত্র

  1. বড় ডেটাসেট প্রসেসিং: Salesforce গভর্নর লিমিট অতিক্রম না করে বড় ডেটাসেট প্রক্রিয়া করতে ব্যবহার করা হয়।
  2. নিয়মিত ডেটা ক্লিন-আপ: ডেটাবেস থেকে পুরানো বা অপ্রয়োজনীয় ডেটা ডিলিট করা।
  3. ব্যাকগ্রাউন্ড প্রসেসিং: Async ভাবে ব্যাকগ্রাউন্ডে ডেটা প্রসেসিং পরিচালনা করা।
  4. রিপোর্টিং এবং অ্যানালাইসিস: বড় ডেটাসেটের উপর নির্দিষ্ট সময়ে রিপোটিং বা অ্যানালাইসিস চালানো।

ভালো অনুশীলন

  1. সঠিক ব্যাচ সাইজ নির্ধারণ: গভর্নর লিমিটের মধ্যে থেকে কার্যক্ষমতা উন্নত করতে উপযুক্ত ব্যাচ সাইজ নির্ধারণ করা উচিত।
  2. লজিক্যাল লিমিট মেনে চলুন: বড় SOQL কুয়েরি ব্যবহার করে ব্যাচ এক্সিকিউট করার সময় গভর্নর লিমিট মেনে চলুন।
  3. Exception Handling যুক্ত করুন: Batch Apex প্রক্রিয়াকরণের সময় ত্রুটি হলে সেগুলি ধরে এবং ব্যবস্থাপনার জন্য Exception Handling ব্যবহার করুন।
  4. Test Coverage নিশ্চিত করুন: Batch Apex-এর জন্য সঠিক Unit Test তৈরি করে ৭৫% কোড কভারেজ নিশ্চিত করুন।

সংক্ষেপে

Batch Apex বড় ডেটাসেট বা দীর্ঘমেয়াদী কার্যক্রম ছোট ব্যাচে ভাগ করে প্রক্রিয়া করার একটি শক্তিশালী পদ্ধতি, যা Salesforce গভর্নর লিমিটের মধ্যে থেকে কার্যক্ষমতা নিশ্চিত করে। Batch Apex বড় ডেটা ক্লিন-আপ, ডেটা প্রসেসিং, এবং অ্যাসিঙ্ক্রোনাস কার্যক্রমে ব্যবহৃত হয় এবং Salesforce অ্যাপ্লিকেশনকে আরও কার্যকর ও সুরক্ষিত রাখতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion